<!--
 * @Descripttion: 
 * @version: 
 * @Author: wtzhang
 * @Date: 2021-07-29 18:01:50
 * @LastEditors: wtzhang
 * @LastEditTime: 2021-08-02 13:42:34
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>hello react</title>
</head>
<style>
  #mid {
    color: red;
  }
  .title {
    color: aqua;
    font-size: 18px;
  }
</style>

<body>
  <!-- 准备好一个容器 -->
  <div id="test"></div>

  <!-- 引入react核心库 -->
  <script src="../js/old_version/react.development.js"></script>
  <!-- 引入react-dom 用于支持react操作DOM -->
  <script src="../js/old_version/react-dom.development.js"></script>
  <!-- 引入babel， 用于将jsx转为js -->
  <script src="../js/old_version/babel.min.js"></script>
  <script type="text/babel">
    const customId = 'mid'
    // 1. 创建虚拟dom
    const VDOM = (// 此处一定不要写 引号，因为不是字符串（注意：这里是使用jsx，通过babel转义）
      <div>
        <h1 className="title">
          <span>Hello, React!</span>
        </h1>
        <h3 id={customId}>123</h3>
        <h4>
          <span style={{color: 'red', backgroundColor: 'pink'}}>jsx</span>  
        </h4>
      </div>
    )
    // 2. 渲染虚拟dom到页面
    // ReactDOM.render(虚拟DOM, 容器)
    ReactDOM.render(VDOM, document.getElementById('test'))
    /*
      jsx 语法规则：
        1. 定义虚拟DOM时，不要写引号。
        2. 标签中混入JS表达式要用 {}。
        3. 样式的类名指定不要使用class，要用className。
        4. 内联样式，要用style={{key: value]}}的形式去写。
        5. 只有一个根标签。
        6. 标签必须闭合
        7. 标签首字母
          （1）若小写字母开头，则将该标签转为html中同名元素，若html中无该标签对应的同名元素，则报错。
          （2）若大写字母开头，react就去渲染对应的组件，若组件没有定义，则报错。
    */
  </script>
</body>

</html>